<?xml version="1.0"?>


<!DOCTYPE rdf:RDF [
    <!ENTITY owl "http://www.w3.org/2002/07/owl#" >
    <!ENTITY owl2 "http://www.w3.org/2006/12/owl2#" >
    <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
    <!ENTITY owl2xml "http://www.w3.org/2006/12/owl2-xml#" >
    <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
    <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
]>


<rdf:RDF xmlns="http://www.ordnancesurvey.co.uk/ontology/Datatypes.owl#"
     xml:base="http://www.ordnancesurvey.co.uk/ontology/Datatypes.owl"
     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
     xmlns:owl2xml="http://www.w3.org/2006/12/owl2-xml#"
     xmlns:owl="http://www.w3.org/2002/07/owl#"
     xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     xmlns:owl2="http://www.w3.org/2006/12/owl2#">
    <owl:Ontology rdf:about=""/>
    


    <!-- 
    ///////////////////////////////////////////////////////////////////////////////////////
    //
    // Object Properties
    //
    ///////////////////////////////////////////////////////////////////////////////////////
     -->

    


    <!-- http://www.ordnancesurvey.co.uk/ontology/Datatypes.owl#hasAssociatedFeature -->

    <owl:ObjectProperty rdf:about="#hasAssociatedFeature"/>
    


    <!-- http://www.ordnancesurvey.co.uk/ontology/Datatypes.owl#hasExtent -->

    <owl:ObjectProperty rdf:about="#hasExtent"/>
    


    <!-- http://www.ordnancesurvey.co.uk/ontology/Datatypes.owl#hasGeometry -->

    <owl:ObjectProperty rdf:about="#hasGeometry">
        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
    </owl:ObjectProperty>
    


    <!-- http://www.ordnancesurvey.co.uk/ontology/Datatypes.owl#hasPhysicalDomain -->

    <owl:ObjectProperty rdf:about="#hasPhysicalDomain"/>
    


    <!-- http://www.ordnancesurvey.co.uk/ontology/Datatypes.owl#hasPhysicalProperty -->

    <owl:ObjectProperty rdf:about="#hasPhysicalProperty"/>
    


    <!-- http://www.ordnancesurvey.co.uk/ontology/Datatypes.owl#hasSpatioTemporalDatatype -->

    <owl:ObjectProperty rdf:about="#hasSpatioTemporalDatatype"/>
    


    <!-- http://www.ordnancesurvey.co.uk/ontology/Datatypes.owl#hasValueRange -->

    <owl:ObjectProperty rdf:about="#hasValueRange"/>
    


    <!-- 
    ///////////////////////////////////////////////////////////////////////////////////////
    //
    // Data properties
    //
    ///////////////////////////////////////////////////////////////////////////////////////
     -->

    


    <!-- http://www.ordnancesurvey.co.uk/ontology/Datatypes.owl#hasISOProperty -->

    <owl:DatatypeProperty rdf:about="#hasISOProperty"/>
    


    <!-- http://www.ordnancesurvey.co.uk/ontology/Datatypes.owl#hasISOValue -->

    <owl:DatatypeProperty rdf:about="#hasISOValue"/>
    


    <!-- 
    ///////////////////////////////////////////////////////////////////////////////////////
    //
    // Classes
    //
    ///////////////////////////////////////////////////////////////////////////////////////
     -->

    


    <!-- http://www.ordnancesurvey.co.uk/ontology/Datatypes.owl#1DSwath -->

    <owl:Class rdf:about="#1DSwath">
        <owl:equivalentClass rdf:resource="#Path"/>
        <rdfs:subClassOf rdf:resource="#Curve"/>
    </owl:Class>
    


    <!-- http://www.ordnancesurvey.co.uk/ontology/Datatypes.owl#2DSwath -->

    <owl:Class rdf:about="#2DSwath">
        <rdfs:subClassOf rdf:resource="#Surface"/>
    </owl:Class>
    


    <!-- http://www.ordnancesurvey.co.uk/ontology/Datatypes.owl#3DSwath -->

    <owl:Class rdf:about="#3DSwath">
        <rdfs:subClassOf rdf:resource="#Volume"/>
    </owl:Class>
    


    <!-- http://www.ordnancesurvey.co.uk/ontology/Datatypes.owl#Contour -->

    <owl:Class rdf:about="#Contour">
        <rdfs:subClassOf rdf:resource="#Curve"/>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasISOValue"/>
                <owl:someValuesFrom rdf:resource="&xsd;int"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasISOProperty"/>
                <owl:someValuesFrom rdf:resource="&xsd;string"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:comment
            >needs sorting out</rdfs:comment>
    </owl:Class>
    


    <!-- http://www.ordnancesurvey.co.uk/ontology/Datatypes.owl#Coverage -->

    <owl:Class rdf:about="#Coverage">
        <owl:equivalentClass rdf:resource="#Profile"/>
        <rdfs:subClassOf rdf:resource="#SpatioTemporalFunction"/>
        <rdfs:comment
            >A function of the physical variable and the spatiotemporal variable. </rdfs:comment>
        <rdfs:comment
            >More of a measurement concept than theoretical</rdfs:comment>
    </owl:Class>
    


    <!-- http://www.ordnancesurvey.co.uk/ontology/Datatypes.owl#Curve -->

    <owl:Class rdf:about="#Curve">
        <rdfs:subClassOf rdf:resource="#Geometry"/>
        <rdfs:comment
            >Formal level, the next level down is the representational level</rdfs:comment>
    </owl:Class>
    


    <!-- http://www.ordnancesurvey.co.uk/ontology/Datatypes.owl#Feature -->

    <owl:Class rdf:about="#Feature">
        <rdfs:subClassOf rdf:resource="&owl;Thing"/>
    </owl:Class>
    


    <!-- http://www.ordnancesurvey.co.uk/ontology/Datatypes.owl#Geo -->

    <owl:Class rdf:about="#Geo">
        <rdfs:subClassOf rdf:resource="#PhysicalDomain"/>
    </owl:Class>
    


    <!-- http://www.ordnancesurvey.co.uk/ontology/Datatypes.owl#GeodataType -->

    <owl:Class rdf:about="#GeodataType">
        <rdfs:subClassOf rdf:resource="#SpatioTemporalDatatype"/>
    </owl:Class>
    


    <!-- http://www.ordnancesurvey.co.uk/ontology/Datatypes.owl#Geometry -->

    <owl:Class rdf:about="#Geometry">
        <rdfs:subClassOf rdf:resource="&owl;Thing"/>
    </owl:Class>
    


    <!-- http://www.ordnancesurvey.co.uk/ontology/Datatypes.owl#Grid -->

    <owl:Class rdf:about="#Grid">
        <rdfs:subClassOf rdf:resource="#GeodataType"/>
    </owl:Class>
    


    <!-- http://www.ordnancesurvey.co.uk/ontology/Datatypes.owl#Helio -->

    <owl:Class rdf:about="#Helio">
        <rdfs:subClassOf rdf:resource="#PhysicalDomain"/>
    </owl:Class>
    


    <!-- http://www.ordnancesurvey.co.uk/ontology/Datatypes.owl#Line -->

    <owl:Class rdf:about="#Line">
        <rdfs:subClassOf rdf:resource="#Curve"/>
    </owl:Class>
    


    <!-- http://www.ordnancesurvey.co.uk/ontology/Datatypes.owl#Path -->

    <owl:Class rdf:about="#Path">
        <rdfs:subClassOf rdf:resource="&owl;Thing"/>
    </owl:Class>
    


    <!-- http://www.ordnancesurvey.co.uk/ontology/Datatypes.owl#PhysicalDomain -->

    <owl:Class rdf:about="#PhysicalDomain">
        <rdfs:subClassOf rdf:resource="&owl;Thing"/>
    </owl:Class>
    


    <!-- http://www.ordnancesurvey.co.uk/ontology/Datatypes.owl#PhysicalProperty -->

    <owl:Class rdf:about="#PhysicalProperty">
        <rdfs:subClassOf rdf:resource="&owl;Thing"/>
    </owl:Class>
    


    <!-- http://www.ordnancesurvey.co.uk/ontology/Datatypes.owl#Point -->

    <owl:Class rdf:about="#Point">
        <rdfs:subClassOf rdf:resource="#Geometry"/>
    </owl:Class>
    


    <!-- http://www.ordnancesurvey.co.uk/ontology/Datatypes.owl#Profile -->

    <owl:Class rdf:about="#Profile">
        <rdfs:subClassOf rdf:resource="&owl;Thing"/>
        <rdfs:comment
            >Needs a definition</rdfs:comment>
        <rdfs:comment
            >A profile does not require an associated feature</rdfs:comment>
    </owl:Class>
    


    <!-- http://www.ordnancesurvey.co.uk/ontology/Datatypes.owl#Scale -->

    <owl:Class rdf:about="#Scale">
        <rdfs:subClassOf rdf:resource="&owl;Thing"/>
    </owl:Class>
    


    <!-- http://www.ordnancesurvey.co.uk/ontology/Datatypes.owl#SpatialExtent -->

    <owl:Class rdf:about="#SpatialExtent">
        <rdfs:subClassOf rdf:resource="&owl;Thing"/>
    </owl:Class>
    


    <!-- http://www.ordnancesurvey.co.uk/ontology/Datatypes.owl#SpatioTemporalDatatype -->

    <owl:Class rdf:about="#SpatioTemporalDatatype">
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasExtent"/>
                <owl:allValuesFrom>
                    <owl:Class>
                        <owl:unionOf rdf:parseType="Collection">
                            <rdf:Description rdf:about="#SpatialExtent"/>
                            <rdf:Description rdf:about="#TemporalExtent"/>
                        </owl:unionOf>
                    </owl:Class>
                </owl:allValuesFrom>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasGeometry"/>
                <owl:someValuesFrom rdf:resource="#Geometry"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasPhysicalDomain"/>
                <owl:someValuesFrom rdf:resource="#PhysicalDomain"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasExtent"/>
                <owl:someValuesFrom>
                    <owl:Class>
                        <owl:unionOf rdf:parseType="Collection">
                            <rdf:Description rdf:about="#SpatialExtent"/>
                            <rdf:Description rdf:about="#TemporalExtent"/>
                        </owl:unionOf>
                    </owl:Class>
                </owl:someValuesFrom>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    


    <!-- http://www.ordnancesurvey.co.uk/ontology/Datatypes.owl#SpatioTemporalFunction -->

    <owl:Class rdf:about="#SpatioTemporalFunction">
        <rdfs:subClassOf rdf:resource="&owl;Thing"/>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasSpatioTemporalDatatype"/>
                <owl:someValuesFrom rdf:resource="#SpatioTemporalDatatype"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasPhysicalProperty"/>
                <owl:someValuesFrom rdf:resource="#PhysicalProperty"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:comment
            >Coverage may not be a direct subclass</rdfs:comment>
    </owl:Class>
    


    <!-- http://www.ordnancesurvey.co.uk/ontology/Datatypes.owl#Surface -->

    <owl:Class rdf:about="#Surface">
        <rdfs:subClassOf rdf:resource="#Geometry"/>
    </owl:Class>
    


    <!-- http://www.ordnancesurvey.co.uk/ontology/Datatypes.owl#TemporalExtent -->

    <owl:Class rdf:about="#TemporalExtent">
        <rdfs:subClassOf rdf:resource="&owl;Thing"/>
    </owl:Class>
    


    <!-- http://www.ordnancesurvey.co.uk/ontology/Datatypes.owl#ValueRange -->

    <owl:Class rdf:about="#ValueRange">
        <rdfs:subClassOf rdf:resource="&owl;Thing"/>
    </owl:Class>
    


    <!-- http://www.ordnancesurvey.co.uk/ontology/Datatypes.owl#Volume -->

    <owl:Class rdf:about="#Volume">
        <rdfs:subClassOf rdf:resource="#Geometry"/>
    </owl:Class>
    


    <!-- http://www.w3.org/2002/07/owl#Thing -->

    <owl:Class rdf:about="&owl;Thing"/>
    


    <!-- 
    ///////////////////////////////////////////////////////////////////////////////////////
    //
    // General axioms
    //
    ///////////////////////////////////////////////////////////////////////////////////////
     -->

    <rdf:Description>
        <rdf:type rdf:resource="&owl2;AllDisjointClasses"/>
        <owl2:members rdf:parseType="Collection">
            <rdf:Description rdf:about="#Curve"/>
            <rdf:Description rdf:about="#Point"/>
            <rdf:Description rdf:about="#Surface"/>
            <rdf:Description rdf:about="#Volume"/>
        </owl2:members>
    </rdf:Description>
</rdf:RDF>
